package com.yiji.fintech.musfinance.entity;

import com.acooly.core.common.domain.AbstractEntity;
import com.acooly.core.utils.enums.ResultStatus;
import com.yiji.fintech.musfinance.base.enums.NotifyStatusEnum;
import com.yiji.fintech.musfinance.base.enums.TradeTypeEnum;
import com.yiji.fintech.musfinance.base.enums.TransStatusEnum;
import lombok.Data;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.MappedSuperclass;
import javax.validation.constraints.Size;

/**
 * Created by ouwen@yiji.com} on 2017/9/25.
 */
@Data
@MappedSuperclass
public abstract class AbstractTransaction extends AbstractEntity {
    /** GID */
    @Size(max=64)
    private String gid;

    /** 内部流水号 */
    private String bizOrderNo;

    /** 外部流水号 */
    @Size(max=36)
    private String merchOrderNo;

    /** 机构号 */
    @Size(max=32)
    private String partnerId;

    /** 交易状态 */
    @Enumerated(EnumType.STRING)
    private TransStatusEnum transStatus;

    /** 通知状态 */
    @Enumerated(EnumType.STRING)
    private NotifyStatusEnum notifyStatus;

    /**
     * 结果状态
     */
    @Enumerated(EnumType.STRING)
    private ResultStatus status;
    /**
     * 交易标识
     */
    @Enumerated(EnumType.STRING)
    private TradeTypeEnum tradeType;

    /**
     * 结果状态码
     */
    private String code;
    /**
     * 结果消息
     */
    private String detail;
}
